package ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.vista;

import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Observable;

import javax.swing.JFrame;

import ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.controlador.Controlador;
import ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.init.AutomatizacionNegroHumoApplet;
import ar.uba.fi.cimII7566.cuat201102.automatizacionNegroHumo.negocio.Simulador;

public class VistaSimulacionGrafica extends Vista {

	private Simulador simulador;
	private AutomatizacionNegroHumoApplet applet;

	public VistaSimulacionGrafica(Controlador controlador, Simulador simulador) {
		super(controlador);
		this.simulador = simulador;
	}

	public void actualizarVista(Observable o, Object arg) {
		applet.actualizar();
	}

	public void evento() {
		getControlador().evento(this);
	}

	public void ciclar(int escenario) throws Exception {
		getControlador().ciclar(this, escenario);
		iniciarVista();
	}

	public void parar() throws Exception {
		getControlador().parar();
	}

	private void iniciarVista() {
		JFrame frame = new JFrame("CIMII");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		applet = new AutomatizacionNegroHumoApplet(simulador);
		frame.getContentPane().add("Center", applet);
		applet.init();

		// Display the window.
		frame.setSize(new Dimension(800, 600));
		frame.setPreferredSize(new Dimension(800, 600));
		frame.setResizable(false);
		frame.pack();
		frame.setVisible(true);
	}

}
